// #pragma once
// #include "grpc.grpc.pb.h"
// #include <grpcpp/grpcpp.h>
// #include <memory>
// #include<algorithm>
// #include <iostream>
// #include<string>
// #include <strstream>
// #include<unordered_map>
// #include"room_player.hpp"
// // 继承自生成的Service类，实现三个虚函数
// class ServiceImpl:public Rpc::Server::Service {
//     public:                                                                                                              
//      grpc::Status QueryOpponent(grpc::ServerContext*  context,const Rpc::Request* request,Rpc::Reply* response) override
//     {
//       if(rm_->map_room_[atoi(request->room_id().c_str())].p1_==atoi(request->my_id().c_str()))
//       response->set_oppid(to_string(rm_->map_room_[atoi(request->room_id().c_str())].p2_));
//       else
//       response->set_oppid(to_string(rm_->map_room_[atoi(request->room_id().c_str())].p1_));
      
//        // grpc状态可以设置message,所以也可以用来返回一些信息
//        return grpc::Status(grpc::StatusCode::OK,"hello");
//     }
// };

// void* loop(void* m)
//  {
//    // 服务构建器，用于构建同步或者异步服务
//    rm_=(RoomManager*) m;
//    grpc::ServerBuilder builder;
//    // 添加监听的地址和端口，后一个参数用于设置认证方式，这里选择不认证
//    builder.AddListeningPort("0.0.0.0:33333",grpc::InsecureServerCredentials());
//   // 创建服务对象
//    ServiceImpl service;
//   // 注册服务
//    builder.RegisterService(&service);
//   // 构建服务器
//    std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
    
//    std::cout<<"Server Runing"<<std::endl;
//    // 进入服务处理循环（必须在某处调用server->Shutdown()才会返回）
//    server->Wait();

//  }                 